drv_name = dc

link = link
lflags = /nod /noi /map:FULL /BA
as = ml /c
OS = 3          # default os - DOS, can be override by command line.
aflags = /Cx /W2 /WX /Sx /DOS=$(OS) /DNOS=1
masmflags = /mx /DOS=$(OS) /DNOS=1

objs = head.obj \
       dc21x4pk.obj \
       tail.obj \
       maccrc.obj \
       macdata.obj \
       macinit.obj \
       macisr.obj \
       macrcv.obj \
       macreq.obj \
       macxmt.obj \
       macport.obj \
       txhang.obj \
       dc_rom.obj \
       dc_regs.obj \
       dc_init.obj \
       dc_kwds.obj \
       nic.obj    \
       syssrvcs.obj \
       mac2phy.obj

srcs = head.asm \
       dc21x4pk.asm \
       tail.asm \
       maccrc.asm \
       macdata.asm \
       macinit.asm \
       macisr.asm \
       macrcv.asm \
       macreq.asm \
       macxmt.asm \
       macport.asm \
       txhang.asm  \
       dc_kwds.asm \
       dc_rom.asm \
       dc_regs.asm \
       dc_init.asm \
       nic.asm    \
       syssrvcs.asm \
       mac2phy.asm

$(drv_name).com : $(drv_name).dos
        exe2bin $(drv_name).dos $(drv_name).com

$(drv_name).dos : $(objs) $(drv_name).def
        $(link) $(lflags) @$(drv_name).def $(drv_name).dos,$(drv_name).map,,;

$(drv_name).os2 : $(objs) $(drv_name).def
        $(link) $(lflags) @$(drv_name).def $(drv_name).os2,$(drv_name).map,doscalls.lib,os2.def;

$(drv_name).def : makefile
        echo head.obj+      >$(drv_name).def
        echo dc21x4pk.obj+ >>$(drv_name).def
        echo tail.obj+     >>$(drv_name).def
        echo macdata.obj+  >>$(drv_name).def
        echo maccrc.obj+   >>$(drv_name).def
        echo macisr.obj+   >>$(drv_name).def
        echo macrcv.obj+   >>$(drv_name).def
        echo macreq.obj+   >>$(drv_name).def
        echo macxmt.obj+   >>$(drv_name).def
        echo txhang.obj+   >>$(drv_name).def
        echo dc_rom.obj+   >>$(drv_name).def
        echo dc_regs.obj+  >>$(drv_name).def
        echo dc_kwds.obj+  >>$(drv_name).def
        echo nic.obj+      >>$(drv_name).def
        echo mac2phy.obj+  >>$(drv_name).def
        echo macport.obj+  >>$(drv_name).def
        echo macinit.obj+  >>$(drv_name).def
        echo dc_init.obj+  >>$(drv_name).def
        echo syssrvcs.obj  >>$(drv_name).def

head.obj : head.asm
	masm $(masmflags) head.asm > head.log

tail.obj : tail.asm
	masm $(masmflags) tail.asm > tail.log

dc21x4pk.obj : dc21x4pk.asm
	masm $(masmflags) dc21x4pk.asm > dc21x4pk.log


MacCRC.obj :   MacCRC.asm     \
	       MacCRC.ash     \
	       SEG_DEFS.INC
        $(as) $(aflags) MacCRC.asm > MacCRC.log

Dc_Init.obj :  Dc_Init.asm     \
	       Dc_Init.ash     \
	       SEG_DEFS.INC    \
	       Nic.Inc	       \
	       SysSrvcs.inc    \
	       dc_regs.inc     \
	       DC_Kwds.inc
        $(as) $(aflags) Dc_Init.asm > Dc_Init.log

DC_Regs.obj :  DC_Regs.asm     \
	       DC_Regs.ash     \
	       DC_Regs.inc     \
	       SEG_DEFS.INC    \
	       Nic.inc         \
	       SysSrvcs.inc
        $(as) $(aflags) DC_Regs.asm > DC_Regs.log

SYSSRVCS.obj : SYSSRVCS.asm     \
	       SYSSRVCS.ash     \
	       SYSSRVCS.inc     \
	       SEG_DEFS.INC	\
	       dc_regs.inc	\
	       Nic.inc
        $(as) $(aflags) SYSSRVCS.asm > SYSSRVCS.log

DC_ROM.obj :   DC_ROM.asm      \
	       DC_ROM.ash      \
	       Seg_Defs.inc    \
               dc_regs.inc     \
	       Nic.inc
        $(as) $(aflags) DC_ROM.asm > DC_ROM.log

Nic.obj    :   Nic.asm         \
	       Nic.ash         \
	       Seg_Defs.inc    \
	       Dc_regs.inc     \
	       Nic.inc
        $(as) $(aflags) Nic.asm > Nic.log

Mac2Phy.obj :  Mac2Phy.asm     \
               Mac2Phy.ash     \
	       Seg_Defs.inc    \
               dc_regs.inc     \
               Nic.inc         \
	       Phys.inc        \
               MII_Gen.inc     \
               MII_phy.inc     \
               SIA_Gen.inc     \
               SYM_Gen.inc     \
               DC_Media.inc    \
               Autosens.inc
        $(as) $(aflags) Mac2Phy.asm > Mac2Phy.log

Dc_Kwds.obj :   Dc_Kwds.asm     \
                Dc_Kwds.ash     \
                Dc_Kwds.inc     \
                Seg_Defs.inc    \
                DC_Regs.inc     \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc        \
                SysSrvcs.inc
        $(as) $(aflags) DC_KWDS.asm > DC_KWDS.log

Drvhdr.obj :    Drvhdr.asm      \
                Seg_Defs.inc    \
                Driver.inc
        $(as) $(aflags) Drvhdr.asm > drvhdr.log

MacData.obj :   MacData.asm     \
                MacData.ash     \
                Seg_Defs.inc    \
                Driver.inc      \
                Ndis.inc        \
                DC_Regs.inc     \
                Version.inc
        $(as) $(aflags) MacData.asm > MacData.log

MacInit.obj :   MacInit.asm     \
                MacInit.ash     \
                Seg_Defs.inc    \
                Macro.inc       \
                DC_Regs.inc     \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc        \
                Dc_Kwds.inc     \
                SysSrvcs.inc    \
                Version.inc     \
                idmsg.inc
        $(as) $(aflags) MacInit.asm > MacInit.log

MacIsr.obj :    MacIsr.asm      \
                MacIsr.ash      \
                Seg_Defs.inc    \
                Macro.inc       \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc        \
                SysSrvcs.inc
        $(as) $(aflags) MacIsr.asm > MacIsr.log

MacReq.obj :    MacReq.asm      \
                MacReq.ash      \
                Dc_Regs.inc     \
                Seg_Defs.inc    \
                Macro.inc       \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc
        $(as) $(aflags) MacReq.asm > MacReq.log

MacPort.obj :   MacPort.asm     \
                MacPort.ash     \
                Dc_Regs.inc     \
                Seg_Defs.inc    \
                Macro.inc       \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc        \
                MacXmt.inc
        $(as) $(aflags) MacPort.asm > MacPort.log

MacRcv.obj :    MacRcv.asm      \
                MacRcv.ash      \
                MacRcv.inc      \
                Dc_Regs.inc     \
                Seg_Defs.inc    \
                Macro.inc       \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc
        $(as) $(aflags) MacRcv.asm > MacRcv.log

MacXmt.obj :    MacXmt.asm      \
                MacXmt.ash      \
                MacXmt.inc      \
                Dc_Regs.inc     \
                Seg_Defs.inc    \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc
        $(as) $(aflags) MacXmt.asm > MacXmt.log

Nds2Shll.obj :  Nds2Shll.asm    \
                Nds2Shll.ash    \
                Seg_Defs.inc
        $(as) $(aflags) Nds2Shll.asm > Nds2Shll.log

TxHang.obj :    TxHang.asm      \
                TxHang.ash      \
                Dc_Regs.inc     \
                Seg_Defs.inc    \
                Macro.inc       \
                Nic.inc         \
                Driver.inc      \
                Ndis.inc        \
                MacRcv.inc
        $(as) $(aflags) TxHang.asm > TxHang.log

clean:
        del $(drv_name).dos
        del $(drv_name).os2
        del $(drv_name).map
        del $(drv_name).def
        del *.obj
        del *.lst
        del *.crf
